开始之前:

1. 识别车牌输出相关数据

在车牌识别功能下,当车牌出现在HUSKYLENS 2屏幕中时,可以被识别和框出,并获车牌的相关数据。可以读取车牌的数据有:指定车牌的ID、名称、车牌内容(车牌号)、宽度、高度以及车牌中心点的X坐标位置和Y坐标位置,画面中的车牌总数、画面中已学习的车牌总数。

示例程序如下。

#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from unihiker import GUI
from pinpong.board import Board
from dfrobot_huskylensv2 import *


u_gui=GUI()
Board().begin()
huskylens = HuskylensV2_I2C()
huskylens.knock()
huskylens.switchAlgorithm(ALGORITHM_LICENSE_RECOGNITION)
line1=u_gui.draw_text(text="",x=0,y=0,font_size=18, color="#0000FF")
line2=u_gui.draw_text(text="",x=0,y=40,font_size=18, color="#0000FF")
line3=u_gui.draw_text(text="",x=0,y=80,font_size=18, color="#0000FF")
line4=u_gui.draw_text(text="",x=0,y=120,font_size=18, color="#0000FF")
while True:
    huskylens.getResult(ALGORITHM_LICENSE_RECOGNITION)
    if (huskylens.available(ALGORITHM_LICENSE_RECOGNITION)):
        line1.config(text=(str("车牌总数:") + str((huskylens.getCachedResultNum(ALGORITHM_LICENSE_RECOGNITION)))))
        line2.config(text=(str("已学习车牌总数:") + str((huskylens.getCachedResultMaxID(ALGORITHM_LICENSE_RECOGNITION)))))
        line3.config(text=(str("靠近中心的车牌ID:") + str(huskylens.getCachedCenterResult(ALGORITHM_LICENSE_RECOGNITION).ID if huskylens.getCachedCenterResult(ALGORITHM_LICENSE_RECOGNITION) else -1)))
        line4.config(text=(str("第一个车牌ID:") + str(huskylens.getCachedResultByIndex(ALGORITHM_LICENSE_RECOGNITION, 1-1).ID if huskylens.getCachedResultByIndex(ALGORITHM_LICENSE_RECOGNITION, 1-1) else -1)))

在Mind+中点击运行程序,等待程序上传完成后。

将HUSKYLENS 2的摄像头对准画面中的车牌进行学习,如何学习车牌详细操作请看二哈识图 2 车牌识别功能说明

将HUSKYLENS 2的摄像头对准车牌,观察行空板M10屏幕上的数据。

**运行结果:**如下,识别到画面中有三个车牌,其中已学习的车牌有1个;靠近画面中心的车牌ID、第一个被检测到的车牌ID均为0。(到未学习的车牌,ID号为0,已学习的车牌,则输出其对应ID号。)

Interface Diagram

2. 输出指定ID车牌的数据

当画面中出现多个相同ID的车牌时,可以使用以下示例程序统计画面中的该ID车牌的相关数据。

#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from unihiker import GUI
from pinpong.board import Board
from dfrobot_huskylensv2 import *


u_gui=GUI()
Board().begin()
huskylens = HuskylensV2_I2C()
huskylens.knock()
huskylens.switchAlgorithm(ALGORITHM_LICENSE_RECOGNITION)
line1=u_gui.draw_text(text="",x=0,y=0,font_size=18, color="#0000FF")
line2=u_gui.draw_text(text="",x=0,y=40,font_size=18, color="#0000FF")
line3=u_gui.draw_text(text="",x=0,y=65,font_size=18, color="#0000FF")
line4=u_gui.draw_text(text="",x=0,y=120,font_size=18, color="#0000FF")
line5=u_gui.draw_text(text="",x=0,y=145,font_size=18, color="#0000FF")
while True:
    huskylens.getResult(ALGORITHM_LICENSE_RECOGNITION)
    if (huskylens.available(ALGORITHM_LICENSE_RECOGNITION)):
        if ((huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 1) is not None)):
            line1.config(text=(str("ID1车牌总数:") + str((huskylens.getCachedResultNumByID(ALGORITHM_LICENSE_RECOGNITION, 1)))))
            line2.config(text="ID1车牌")
            line3.config(text=(str("的车牌号:") + str(huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 1).name if huskylens.getCachedResultByID(ALGORITHM_LICENSE_RECOGNITION, 1) else -1)))
            line4.config(text="第一个ID1车牌")
            line5.config(text=(str("的坐标:") + str((str(huskylens.getCachedIndexResultByID(ALGORITHM_LICENSE_RECOGNITION, 1, 1-1).xCenter if huskylens.getCachedIndexResultByID(ALGORITHM_LICENSE_RECOGNITION, 1, 1-1) else -1) + str((str(",") + str(huskylens.getCachedIndexResultByID(ALGORITHM_LICENSE_RECOGNITION, 1, 1-1).yCenter if huskylens.getCachedIndexResultByID(ALGORITHM_LICENSE_RECOGNITION, 1, 1-1) else -1)))))))

**运行结果:**如下,当画面中出现多个指定ID的车牌时,可获取画面中该ID车牌的总数、该ID下指定车牌的车牌号、车牌坐标等数据。

Interface Diagram